This invention relates to a computer system in which a plurality of servers are integrated into one, and more particularly, to a computer system in which an I/O card is shared between a physical server and a logical server.
Recent improvement of computer performance, especially the progress of multicore processor technology, has contributed to increased adoption of a cost reduction method in which processing that has conventionally been distributed among a plurality of servers is concentrated into one server. An effective way to concentrate processing in a server is to run a plurality of operating systems on one server by utilizing server partitioning.
Server partitioning is classified into physical partitioning which allocates OSs on a node basis, “node” being a processor, a memory, or the like, and logical partitioning which virtualizes a physical processor and a physical memory to create an arbitrary number of logical partitions in a computer. Physical partitioning and logical partitioning each have advantages and disadvantages.
With physical partitioning, it is not possible to partition a server into more pieces than the number of physical resources included in the server, and therefore only a limited number of servers can be integrated into one. On the other hand, since servers integrated by physical partitioning each have exclusive use of a hardware resource, the server performance is high.
Logical partitioning is implemented by firmware called hypervisor or virtualization software. In logical partitioning, operating systems (called guest OSs) are executed on logical processors provided by a hypervisor. With a plurality of logical processors mapped onto a physical processor by the hypervisor, the unit of partitioning is finer than a node. Furthermore, when it is a processor that is partitioned, one physical processor may be switched in a time-sharing manner among a plurality of logical partitions. In this way, more logical partitions than the number of physical processors can be created and run concurrently with one another. However, in the logical partitioning, the intervention of virtualization software causes overhead, which makes logical partitioning inferior to physical partitioning in terms of performance.
Thus physical partitioning and logical partitioning each have advantages and disadvantages, and it is therefore desirable to combine the two flexibly to suit the purpose.
Server integration utilizing those physical server partitioning and logical server partitioning has the following problems.
First of all, the above type of server integration requires an I/O card for each server, and the number of servers that can be integrated is limited by the number of I/O cards that can be mounted. A problem second to this is that the server integration can degrade the overall system performance in some cases.
Prior art given below is known as solutions to the above-mentioned problems.
JP 2004-220218 A discloses a technique for preventing the I/O performance of a logically partitioned server from dropping. This technique accomplishes direct memory access, DMA, from an I/O card in a logical server environment by preparing a conversion table for conversion between a guest DMA address shown to a logical server and a host DMA address in main storage.
A similar technique is disclosed in an online article, Intel Corporation, “Intel Virtualization Technology for Directed I/O Architecture Specification” retrieved Jul. 6, 2006 at an Internet URL http://www.intel.com/technology/computing/vptech/. This technique involves extended application to I/O devices of Translation Look-aside Buffer (TLB), which is a mechanism for converting a virtual address into a physical address when a processor accesses memory. By entering different conversion entries for different I/O devices, the same guest DMA address can be converted into different host DMA addresses.
In addition to the above-mentioned hypervisor, server virtualization software disclosed in U.S. Pat. No. 6,496,847 is another known example of software that partitions one computer into an arbitrary number of logical partitions. The server virtualization software makes sure that a host OS intervenes I/O access from a logical server (guest), thereby enabling a plurality of logical servers to share an I/O card. The number of necessary I/O cards can thus be reduced among logical servers.